home *** CD-ROM | disk | FTP | other *** search
/ Creative Computers / Creative Computers CD-ROM, Volume 1 (Legendary Design Technologies, Inc.)(1994).iso / text / misc / detail.tutorial.pp / detail.tutorial
Internet Message Format  |  1994-11-17  |  72KB

  1. From spworley@ATHENA.MIT.EDU Tue Jun 11 20:34:32 1991
  2. Received: from E40-008-11.MIT.EDU by ATHENA.MIT.EDU with SMTP
  3.     id AA04654; Tue, 11 Jun 91 23:35:37 EDT
  4. From: spworley@ATHENA.MIT.EDU
  5. Received: by e40-008-11.MIT.EDU (5.61/4.7) id AA03208; Tue, 11 Jun 91 23:35:31 -0400
  6. Message-Id: <9106120335.AA03208@e40-008-11.MIT.EDU>
  7. To: imagine@ATHENA.MIT.EDU
  8. Subject: Intro Detail Tutorial (file 1 of 3)
  9. Date: Tue, 11 Jun 91 23:35:30 EDT
  10. Status: RO
  11.  
  12.  
  13. This file is a tutorial introduction to the Detail Editor. It
  14. describes the way Imagine stores objects, how Imagine interacts with
  15. you to show the objects you are building, how you can build and
  16. manipulate these objects, and make complex objects formed of many
  17. sub-objects.
  18.  
  19. A later tutorial will describe the more advanced features of the
  20. Detail Editor which allows you to manipulate objects in much more
  21. complex ways, like cutting one object with another, making outlines 
  22. and filling them with faces, defining objects by successive cross 
  23. sections, and bending objects around tubes and spheres, and 
  24. even using outlines as a lathe guide. 
  25.  
  26. A third tutorial will be a more general discussion of the approaches
  27. to object creation, discussing how to plan and actually build your
  28. objects as opposed to what each menu item in the Detail Editor does.
  29.  
  30. The last two tutorials have not been written as of today (6/11/91) but
  31. will be forthcoming in the next month or so. My previous tutorials
  32. are on texture, brushmaps, the use of transparency and glass, the
  33. Forms Editor, and the Project Editor. 
  34.  
  35. ----------------------
  36.  
  37. This tutorial is more basic than most of my others. I realize
  38. that many people will be disappointed, but I feel it is necessary to
  39. give an introduction describing how objects are defined and how the
  40. standard controls in the all of the editors are used. New users will
  41. GREATLY appreciate a description of the goals of the Detail Editor and
  42. how objects are defined and used in Imagine before delving into a
  43. description of the suboptions of each menu item. For those of you who
  44. are looking for a more hard-core Detail tutorial, none to fear! It's
  45. my next project, and it will should blend into a nice, logical
  46. successor to this tutorial. Even those who scoff at this introduction
  47. might want to read it anyway; there are a lot of subtle points
  48. (especially about pick and select!) that are well worth learning
  49. about.
  50.  
  51. This tutorial describes the Detail Editor in Imagine version 1.1. There
  52. are only minor differences (Taut and Fracture) from version 1.0.
  53.  
  54.  
  55. -----------
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                    An Introduction to the Detail Editor
  64.                          Last Revised 6/11/91
  65.                            By Steven Worley
  66.  
  67. -------------------------------------------------------------------------
  68.                    I.  What are Imagine objects?
  69. -------------------------------------------------------------------------
  70.  
  71. When a computer program wants to draw a 3D object, it must have some
  72. way of internally representing it. Some modelers store each object as
  73. a bunch of 2 dimensional polygons- a 3D object is a formed from a
  74. whole bunch of these polygons pasted together. A cube might be defined
  75. as six 2D squares arranged in a group. Since our final picture just
  76. has to LOOK like it is solid, defining the outer surface is usually
  77. all we need to do to make it seem as if the objects ARE solid.
  78.  
  79. Any object can be defined as a bunch of flat polygons. Curved surfaces
  80. like a sphere can use a lot of polygons in order to approximate the
  81. surface closely; certain computer tricks (including a very important
  82. one called Phong shading) can smooth out the surface even more. Most
  83. of the 3D objects, or models, that you've ever seen in any 3D computer
  84. graphic were defined as polygons. Sometimes advanced programs define
  85. surfaces with a mathematical equation, or by a certain type of curve,
  86. and sometimes a computer model will have certain objects it "knows"
  87. how they should look (like a mathematically defined sphere or cone)
  88. but most use polygons for definition, Imagine included.
  89.  
  90. All objects in Imagine are defined as a bunch of triangles. Nothing
  91. more.  It is particularly easy for a computer to decide what a
  92. triangle would look like when viewed as a 3D image. Any more complex
  93. polygon (like a square or octagon) can be broken down into a bunch of
  94. triangles pretty easily.  Having only one "shape" to deal with is
  95. actually a convenience for us, as we don't have to worry about
  96. questions of what type of polygons a certain object is made of, or how
  97. to convert one type of polygon into another. The computer likes
  98. dealing only with triangles because it can optimize it's renderer, the
  99. program that actually draws the pictures, to expect and deal with just
  100. one shape simple instead of 246 different ones.
  101.  
  102. Although an object is made of only triangles (called FACES) it has
  103. points and edges which define where these faces go. If you think of a
  104. simple triangle, it has 3 defining points at the corners, three edges
  105. connecting these points, and one face which actually makes up the body
  106. of the triangle. Imagine can better deal with the objects by defining
  107. these sub-parts, and it allows us to manipulate the objects much more
  108. easily.
  109.  
  110. Every object has a number of defined POINTS. Imagine understands an
  111. EDGE to be a line segment that connects any two of these points. A
  112. face is defined by naming the three edges that make it up. Instead of
  113. storing nine numbers for each triangle (the X,Y,Z location of each
  114. corner) it just names the edges, which in turn name the points. This
  115. reduces the size of a description of an object considerably. It also
  116. helps in editing objects, since if you move a point, each face that it
  117. is part of will adjust itself to the include the new location of the
  118. point. The other alternative would be to have each face manually
  119. manipulated individually, which is obviously a big pain.
  120.  
  121. Think of a square. Imagine would store a square as two triangles that
  122. share one edge together. The square would actually contain FIVE edges
  123. (the four sides and the diagonal) and FOUR points (one at each of the
  124. corners.) It would have two faces, or triangles.  A cube is stored as
  125. twelve faces, formed by eighteen edges, which are in turn defined by
  126. eight points.
  127.  
  128. This definition of objects actually gives us some extra leeway in how
  129. we define our model. Imagine doesn't require your object to be
  130. connected at all; that is, your object could be two completely separate
  131. surfaces that never touch. You might want an object to be a flying
  132. logo. The letters don't actually touch and form one solid object; they
  133. are independent from each other. Imagine doesn't care; you can call
  134. any collection of points, edges, and faces an object. Imagine also
  135. gives you tools for splitting off part of an object (like a letter) or
  136. joining two parts together.
  137.  
  138. Since this is a computer model and not a physical one, we can violate
  139. physics and have objects self-intersect. You might overlap two spheres
  140. half-way and join them together to form one object. You'll only see the
  141. outer surface when you render the new double-sphere object. 
  142.  
  143. There actually are two objects that Imagine does not define as a group
  144. of points, edges, and faces: a perfect sphere and an infinite plane.
  145. These are the only exceptions to the normal definition of objects in
  146. Imagine. Well, OK, there's another. An axis containing NO points can
  147. still be manipulated as an object. It certainly won't show up in a
  148. render, but sometimes it's nice to use a lone axis as an invisible
  149. object in certain cases. You can also use the axis as the start of a
  150. brand new object.
  151.  
  152. There are certain "Editors" in Imagine that allow us to view and
  153. manipulate objects in different ways. Some editors let you place
  154. objects in scenes, or define how the objects change with time. The
  155. Detail Editor is where objects are usually created and modified. It
  156. allows low-level editing of objects; you can add points and faces by
  157. hand, move them, delete old ones and in general be as picky as you
  158. like in adjusting every point.
  159.  
  160. Defining objects point-by-point is obviously not very suited to
  161. complex objects, sometimes with THOUSANDS of points. There are more
  162. powerful controls that let you modify your object in more global ways.
  163. You can add pre-made 'primitive' objects like a cylinder or a torus
  164. (doughnut shape.)  These primitive objects have the points, edges, and
  165. faces that define it already defined. There are certain tools that
  166. let you draw an outline, say the profile of a chess pawn, which is
  167. converted to a three-dimensional `spun' object, as if it was chiseled
  168. out on a lathe. Other tools let you slice off parts of your object
  169. using knives that you can build yourself. In general, object creation
  170. is done with these powerful tools, and picky touch-ups are the only
  171. time you grab and move individual points. A sculptor does not glue
  172. sand grains together!
  173.  
  174. -------------------------------------------------------------------------
  175.                II. Looking at Stuff in the Detail Editor
  176. -------------------------------------------------------------------------
  177.  
  178. The Detail Editor is the program that lets you manipulate and modify
  179. objects in Imagine. Like the other editors (and any Amiga program, for
  180. that matter) Imagine gets input and directions from you by either
  181. moving the mouse and clicking it's buttons, or by typing on the
  182. keyboard. Most advanced options use pull-down menus to select the
  183. function you want to perform. An important trick, especially when you
  184. start using Imagine a lot, is keyboard-equivalents. This lets you
  185. select menu items via the keyboard, by pressing the right Amiga key
  186. along with another letter or number. All of the keyboard equivalents
  187. can be selected via pull-down menus, although not all menu items have
  188. keyboard equivalents.  You'll find that learning the most used
  189. commands' keyboard equivalents can save a LOT of time. Its quick and
  190. easy to punch right-Amiga-o to zoom your view out; pulling the menu
  191. down repeatedly is a pain. A few other commands (especially moving,
  192. rotating, and scaling objects) use the keyboard to indicate what you
  193. want to do (move, rotate, or scale) while simultaneously using the
  194. mouse to control the extent of the transformation.
  195.  
  196. You can get into it from any point in Imagine by selecting the menu
  197. item 'Detail Editor' from the Project pull-down menu.  The screen
  198. should then split into four smaller windows with a thin status line at
  199. the bottom of the screen and another at the top.
  200.  
  201. When you start up the Detail Editor, you'll see what is known as a
  202. "Quad-View." Are four windows labeled "top", "front", "right", and
  203. "perspective", which are different ways of viewing the object you are
  204. manipulating. It is difficult to manipulate 3D objects with a 2D mouse
  205. and a 2D screen, and the tri-view is a compromise that makes the best
  206. of these unfortunate 2D restrictions.
  207.  
  208. The top, right, and front views show you the wire-frame skeleton of
  209. the object you're editing. A wire-frame is a view of your object with
  210. each edge shown as a line segment. Faces are NOT shown, so the object
  211. looks like it's built from pieces of wire that join at the outside
  212. edges of the object, hence the name wireframe. Wireframes have two
  213. advantages; they are much faster to draw than "solid" models, and
  214. since you can see _into_ the object, you can manipulate points and
  215. edges on the interior of the object that you wouldn't normally see.
  216.  
  217. The top, right and front views are just that- a wireframe view of your
  218. object shown from the three orthogonal (right angle) directions. There
  219. is also a small axis at the bottom left corner of each view that shows
  220. the world's X,Y,Z coordinate system. In Imagine, the X,Y,Z is defined
  221. just like it is in mathematics- X is left to right, Y is in to out,
  222. and Z is down to up.  Some 3D programs define Z to be in-and-out, so
  223. note Imagine's difference. 
  224.  
  225. There is an absolute "world" coordinate system defined by these axes.
  226. You can select "Coordinates" from the Display menu, which will
  227. continually display the coordinates of the mouse pointer in the
  228. world's X, Y, and Z system. The units that it measures in are
  229. arbitrary, but it is often convenient to call them "Imagine Units."
  230. Objects tend to be on the order of 10 to 100 Imagine Units in size,
  231. since this is a comfortable scale to deal with when we design
  232. scenes to be rendered.
  233.  
  234. There is a grid shown in the three main windows. This grid is used to
  235. give you a sense of scale, and can be turned on or off in the Display
  236. menu.  The spacing between the lines can be set by choosing "Grid
  237. Size", also from the Display window. The default is 20, which is a
  238. reasonable starting size. Some commands let you use the grid to snap
  239. objects to precise locations- these are the most common reasons you
  240. want to change the grid size.
  241.  
  242. The fourth window (with no grid in it) is called the "perspective"
  243. window, which allows you to view your object from any direction. You
  244. can also change modes to view your object as a wireframe or as a
  245. "solid" model, where the faces become opaque so that you cannot see
  246. through your object. In this window, you CANNOT manipulate your
  247. objects- it is a view only.
  248.  
  249. Each of the four windows can be quickly zoomed to take up the full
  250. screen very easily by merely clicking on the tall narrow box to the
  251. left of each view that contains the name of the window. The window
  252. will expand to take up the entire screen, allowing you to have a
  253. better view of whatever you're working on. To zoom back to the
  254. quad-view, just click on the name to the left again. To go immediately
  255. from a full screen display of one view to a full screen display of
  256. another, you just click the name of the new view to the right. Being
  257. able to see all four views at once is often an advantage, but so is
  258. seeing a larger, more detailed view. This method allows you to quickly
  259. and easily change how you look at your model.
  260.  
  261. Just to get a sense of how this works, pull down the menu item
  262. 'Functions' and select 'Add primitive'. Click on the 'Torus' button
  263. and click on 'OK' to accept the default parameters. All this did was
  264. make a pre-defined object that we can look at when we manipulate the
  265. views. 
  266.  
  267. You should see an object in all four of the windows. This is the same
  268. object, just viewed from different directions. Remember the three main
  269. views (Top, Front, and Right) all show a WIREFRAME view from their
  270. respective directions, so the inside of the doughnut might look very
  271. complex.
  272.  
  273. Perspective, the remaining view, also shows a wireframe view of the
  274. doughnut. You can change the view by manipulating the two white
  275. sliding boxes on the top and left of the window. The bottom white
  276. slider lets you view from different directions AROUND the object. If
  277. the slider is in the middle, you're looking at the front. If it's 3/4
  278. of the way to the right, you're looking at the right hand side, and if
  279. it's all the way in either direction, you're looking at the back. The
  280. vertical slider on the right controls the ANGLE you're looking at the
  281. object from. Centered is a level perspective, all the way up gives you
  282. a straight-down view, and all the way down gives you a straight-up
  283. view.  By combining these two sliders you can look at your object from
  284. any direction.
  285.  
  286. You can change the perspective view by selecting 'wireframe' or
  287. 'solid' from the Display pull-down menu. Solid takes longer to show
  288. your object, but removes the points that are hidden, getting rid of
  289. the X-ray wireframe view. A final way of changing the perspective view
  290. is by selecting 'shaded' from the Mode pull-down menu and zooming the
  291. perspective view to the full screen. This shades the object in false
  292. black and white colors which sometimes lets you see the shape of the
  293. object more clearly.
  294.  
  295. There are a few commands that let you change your absolute vantage of
  296. your object.  You can zoom your view (on all windows) in and out by
  297. using 'zoom in' and 'zoom out' from the View menu. This lets you see
  298. more of your object at once, or just a certain portion. Each zoom in
  299. or out will double or halve the scale respectively. You can also
  300. select a numerical zoom by selecting 'set zoom' in the View menu,
  301. which allows more precise magnification levels by simply typing in a
  302. number. Zoom in and zoom out are often used, so knowing the keyboard
  303. equivalents of right-Amiga-i and right-Amiga-o can save a lot of time.
  304.  
  305. To scroll the views around, you can click in one of the three main
  306. views, then use the arrow keys to move the view in whatever direction
  307. you like. You'll notice that if you change one view, the others will
  308. change as well- all of the views are linked so they show the same
  309. volume of space. You can also scroll the view by telling Imagine where
  310. you want the view centered. You select 'Re-center' from the View menu
  311. and click on where you want the new center of your view to be. Usually
  312. you click right in the middle of the object or area you're interested
  313. in. The keyboard equivalent of right-Amiga-. (period) is very
  314. convenient.
  315.  
  316. The display that Imagine shows you is very important, as it is your
  317. interface in dealing with everything in the program. One important
  318. option is found in the Display menu; it is called "interlace".
  319. Interlace will change the screen resolution which the display uses. An
  320. interlaced screen is 400 pixels high, whereas a non-interlaced screen
  321. is only 200.  Unfortunately, the interlaced display will flicker on
  322. many Amigas. An Amiga 3000 or a "flicker-fixer" equipped Amiga will be
  323. able to use interlaced mode without the flicker. The interlaced mode
  324. allows much more detail and more precise location of points, so it is
  325. by far the preferred mode to work in. Even if you do have a flickering
  326. display, it is probably worth the annoyance to have the extra
  327. resolution.
  328.  
  329. A couple ways to reduce the flicker if you have it: you can muck with
  330. the monitor's contrast and brightness, or you can change the screen
  331. colors using the imagine.config file (see my Project tutorial). My
  332. favorite solution is wearing sunglasses- it works very well indeed,
  333. and you look cool while using your computer.
  334.  
  335. --------
  336. (Continued in next file...)
  337.  
  338. From spworley@ATHENA.MIT.EDU Tue Jun 11 20:47:21 1991
  339. Received: from E40-008-11.MIT.EDU by ATHENA.MIT.EDU with SMTP
  340.     id AA04877; Tue, 11 Jun 91 23:49:14 EDT
  341. From: spworley@ATHENA.MIT.EDU
  342. Received: by e40-008-11.MIT.EDU (5.61/4.7) id AA03394; Tue, 11 Jun 91 23:49:08 -0400
  343. Message-Id: <9106120349.AA03394@e40-008-11.MIT.EDU>
  344. To: imagine@ATHENA.MIT.EDU
  345. Subject: Introductory Detail Tutorial (File 2 of 3)
  346. Date: Tue, 11 Jun 91 23:49:06 EDT
  347. Status: RO
  348.  
  349.  
  350. -------------------------------------------------------------------------
  351.                III. Moving Stuff in the Detail Editor
  352. -------------------------------------------------------------------------
  353.  
  354. Knowing how to move your views around is important, as when you're 
  355. manipulating an object you'll find yourself changing your viewpoints
  356. around constantly. There is a whole new set of commands for moving
  357. the OBJECTS in the editor around. 
  358.  
  359. In order to manipulate an object, we either have to load an existing
  360. one or start one from scratch. Imagine comes with several simple
  361. pre-built objects called 'primitives' that are very convenient to use
  362. as starting points for creating your own objects. Talking about these
  363. primitives doesn't really belong at this point in the tutorial, but 
  364. it would be nice to be able to have something to look at and manipulate
  365. as each of the viewing and manipulation commands are presented.
  366.  
  367. To make a primitive object, select 'add' in the Edit menu, and
  368. 'primitive' in the sub-menu. There are six simple shapes that Imagine
  369. will automagically create for you. They are a sphere, a cylinder, a
  370. cone, a disk, a plane, and a torus. When you select one, Imagine will
  371. ask how many points the object should have.
  372.  
  373. With primitives like a sphere, the more points that define it, the
  374. smoother its appearance is going to be when rendered. Remember that
  375. even curved surfaces are made from triangles, and the surface becomes
  376. better defined with each point added. However, an object with more
  377. points than are necessary can become a burden; drawing the object in
  378. the editor takes more time, and although the final rendered picture
  379. with be higher quality with extra points, it will also take longer.
  380. Thus, when you add new primitive objects, Imagine asks what level of
  381. detail you would like.
  382.  
  383. For example, the sphere primitive asks how many circle sections and
  384. how many vertical sections will make it up. The default is a
  385. reasonable number of defining points. If you were looking for a higher
  386. quality sphere because you were going to zoom in very closely to it,
  387. you might use extra points. If the object is going to sit in the
  388. background and not be examined closely, you might select fewer points.
  389. Most of the time, the defaults serve as a nice compromise, but you are
  390. much more likely to simplify the object as opposed to increase the
  391. default level of detail. The plane primitive in particular lends
  392. itself to simplification- most of the time you can bear with defining
  393. the simplest plane possible (2 triangles) as opposed to the
  394. overburdened default of a grid of 200 triangles.
  395.  
  396. Each primitive lets you define the numbers of points that define it;
  397. the parameters that you can vary are all pretty self-explanatory.  For
  398. example, the cylinder lets you define how many points are to form the
  399. circle around the rim, and also how many sections the body of the tube
  400. should be defined as.  Other options (available for some primitives)
  401. are simple flags that define whether to close the ends of the cylinder
  402. (to create a hollow tube versus a log) or to 'stagger points' in some
  403. models. Staggering points increases the smoothness of curves- you
  404. should almost always leave it on.  Note that the disk and the plane
  405. are actually flat objects- the others all have depth. All objects also
  406. let you define their size; this is quite straightforward.
  407.  
  408. When you have loaded an object or added a primitive, you'll notice
  409. that you can see each point and edge in the wireframe. In addition,
  410. you'll see an AXIS, usually near the center of the object. In Imagine,
  411. EVERY OBJECT HAS IT'S OWN INDEPENDENT AXIS. An object's axis helps
  412. Imagine determine which way an object is facing, how it is scaled, and
  413. even what it's position is. Imagine doesn't understand what the
  414. objects ARE; it doesn't realize that a complex object like an airplane
  415. should orient itself with wheels down instead of balanced sideways on
  416. a wingtip.  The axis actually defines the object's position; if you
  417. ask Imagine to move an object, Imagine really just moves the axis, and
  418. the object's points, edges, and faces are dragged along with it. When
  419. you rotate an object, the rotation occurs around the object's axis, as
  420. opposed to the world's absolute reference system. Scalings, where you
  421. change the size of the object, also use the object axis as a basis.
  422.  
  423. When you want to manipulate a certain object, you have to tell Imagine
  424. which one (or ones!) that you're interested in, since you might have a
  425. dozen different object loaded at once. The way of choosing an object
  426. so you can manipulate it is just by clicking on it's axis. The object
  427. will turn a pretty blue color (or sometimes purple- more later!) which
  428. indicates that the object is chosen- any manipulation commands will
  429. be done on this one object. The object is said to be "picked", and
  430. Imagine knows that you want to apply commands to this object as
  431. opposed to another.
  432.  
  433. Once you've picked an object, the most common manipulations are to
  434. move it around, rotate it, or scale it. These basic commands are often
  435. used, so Impulse has made it pretty easy to do. When you have a
  436. selected an object, you type the letter 'm' for move. The object will
  437. disappear (!)  and be replaced by a big yellow "bounding box" which
  438. encloses the volume where your object was. This bounding box
  439. represents the size, shape, position, and orientation of your object.
  440. Since the box is so simple to draw, Imagine can update it in realtime
  441. as you manipulate it, allowing you to position it quickly and easily.
  442.  
  443. After selecting the object and pressing "m", Imagine knows you want to
  444. move the object. Putting the cursor in any of the three main views,
  445. pressing the left mouse button and then dragging the mouse will drag
  446. your object in the direction you move. You do not have to click on the
  447. yellow box; anywhere in the view is fine. You can keep moving the
  448. object as long as you like; you can let go of the mouse button, move
  449. the pointer to another position in any of the three views, and
  450. continue moving the object. You are also welcome to zoom in and out,
  451. make one view full-screen, or re-center your views at any time. When
  452. you are finally done moving your object, pressing the space bar will
  453. accept the change and your object will be displayed as a wireframe in
  454. it's new location.  If you've made a mistake, you can press the ESC
  455. key instead of the space bar. This also exits the move mode, but the
  456. object's position is unchanged from where it was before you started to
  457. move it. This is obviously useful for fixing mistakes or changing your
  458. mind.
  459.  
  460. Two other commands work much like move: rotate and scale. If you
  461. select your object and press "r", you will rotate your object, and
  462. you'll see the yellow bounding box spin as you drag the mouse with the
  463. button down.  You can also change spin axes (to pitch or bank the
  464. object, as opposed to yawing it) by pressing "x", "y", or "z" to
  465. define which axis you want to rotate around. All rotation is done
  466. around the OBJECT'S axis.
  467.  
  468. Scaling is done by selecting "s" and dragging the mouse. Again,
  469. scaling is done relative to the OBJECT's axis. If the axis is in the
  470. center of the object, the object will grow in all directions. If it is
  471. at the bottom, the object will grow up and out, but not down.
  472.  
  473. Each of these three commands (move, scale, and rotate) can be called
  474. either when you've picked an object or during any other move, scale,
  475. or rotate command. For example, you might pick an object, press "m"
  476. to move the object, position it in a new place, press "r" to spin it,
  477. then "s" to scale it. You do not have to press the space bar after
  478. every change; only after you are finally satisfied with the new
  479. location, size, and orientation of your object do you want to press
  480. the space bar to accept the changes you've made.  Aborting by using
  481. the ESC key will remove all of the changes (movements, rotations, and
  482. scalings) that you've made.
  483.  
  484. These manipulation commands are easy to use, and they have other
  485. controls that make certain manipulations even easier. At the bottom of
  486. the screen, there is a status bar that will highlight which mode
  487. you're in. If you are moving, the "M" in the "M=Move" at the bottom
  488. of the screen will be highlighted, and the "R" and "S" highlight when
  489. you're rotating or scaling.
  490.  
  491. The "x", "y", and "z" commands that allow you to change rotation axes
  492. also work in moving and scaling. They act in these two modes as
  493. toggles- when you start a move, you are free to move it in all three
  494. directions, X, Y, and Z. You might want to restrict a direction of
  495. motion, though, if for example you are moving a table along a floor
  496. and you didn't want to accidentally lift the table into the air as you
  497. moved it left and right. Pressing the "x", "y", and "z" keys will
  498. toggle the allowable directions on and off, so pressing "z" will
  499. anchor the table's height, and pressing "z" again will allow you to
  500. lift it up if you change your mind. This also works in the scaling
  501. mode; if you want to make an object narrower without changing its
  502. height, you might toggle "z" and scale the object down. With the "z"
  503. toggle off, the object will maintain it's Z height, but will shrink in
  504. the X and Y directions.  At any time, the display at the bottom of the
  505. screen shows the letters "X-Y-Z" and highlights the directions that
  506. are "active" or changeable.
  507.  
  508. A related shortcut is using the capital letters "X", "Y", and "Z",
  509. which set the toggles to allow movement and scaling in one direction
  510. only.  If you wanted to lift a table straight up, you just type "Z"
  511. and the table will be free to move up and down, but not in the X or Y
  512. directions.  This method of setting the toggles overrides whatever
  513. position they were set in before, but you can use the individual
  514. toggles afterwards to set whatever freedoms you like.
  515.  
  516. Imagine gives you even more flexibility if you want to use it.
  517. Whenever you move, rotate, and scale an object, it is based on a
  518. certain coordinate system. The default is to use the standard
  519. coordinate system- the set of axes that is fixed in place and shown at
  520. the bottom left of the three main views. This is called the "world"
  521. coordinate system.  However, each object has it's own "local"
  522. coordinate system, defined by it's own axis. Imagine allows you to use
  523. a local coordinate system instead of the world system if you like.
  524.  
  525. For example, if you have an object in the shape of a plane, the local
  526. coordinate system probably has the Y axis (going front to back) in
  527. line with the main fuselage of the plane. Using "r" to rotate the
  528. plane, you can easily position it so that it is angled up like it is
  529. climbing into the sky. If you then wanted to move it in a straight
  530. line along it's "flight path", the direction it's pointing, you could
  531. select move, and try to judge by eye the new position in the direction
  532. in front of the plane. If, instead, you select local mode (by using
  533. "l") and restrict motion along the Y direction by typing "Y", the
  534. plane will move smoothly along the line it's pointed along. In the
  535. world coordinate system, it's moving in both the Y and Z directions,
  536. but in it's local coordinate system, it's moving only in it's Y
  537. direction.
  538.  
  539. To switch between coordinate systems, you just type "l" and "w"
  540. whenever you want to change. The current coordinate system has L or W
  541. highlighted at the bottom display just like the X-Y-Z indicators.
  542. Many times the local and world coordinate systems will be the same, so
  543. one is equivalent to the other.
  544.  
  545. One final option when you're manipulating objects allows you to
  546. manipulate the axis of the object independently. If you want to move,
  547. scale, or rotate an object's axis [without simultaneously affecting
  548. the object!] you can use "M", "R", and "S", the capital letter
  549. versions of the object manipulation commands, to affect only the axis.
  550. There are some occasions you might want to do this for fancy tricks,
  551. but most of the time, you just want to move the axis around just so
  552. that it lies near the center of your object.
  553.  
  554. The standard commands to move, rotate, and scale objects have been
  555. streamlined for ease of use since they are performed so often.
  556. Sometimes, however, they are somewhat lacking, especially when you
  557. need precise control over how your object is to be manipulated. For
  558. the precise control of object manipulation, Imagine has a special
  559. command called "Transform" which allows you to numerically control
  560. your object as opposed to judging by eye.
  561.  
  562. The transform command works much like the standard interactive
  563. commands in that you first select your object (by clicking on it's
  564. axis) and then telling Imagine what to do to it. To enter the
  565. transform command, you click on the object (it becomes blue or purple)
  566. and pull down the menu item "transform" from the Object menu. A small
  567. requester will appear. You have six options you can choose from:
  568. translate, rotate, scale, position, alignment, and size. You also
  569. enter X, Y, and Z arguments.
  570.  
  571. Translate takes the X, Y and Z arguments and moves (translates) the
  572. object that distance.
  573.  
  574. Rotate will rotate the object around the axis you specify by an amount
  575. (in degrees) you specify in X, Y and Z. Performing more than one
  576. rotation at once is legal, but it is easy to make mistakes in final
  577. orientation. If you rotate around more than one axis at once, the Z
  578. rotation is performed, then the X rotation, then the Y rotation.
  579.  
  580. Scale will scale your object by a certain factor. To double the size,
  581. just enter 2 in each of the X, Y, and Z boxes. A negative number is
  582. completely legal, and if one or three of the scalings is negative,
  583. you'll actually get a scaled mirror image of your original object.
  584.  
  585. Position is like Translate in that it moves your object. Instead of
  586. moving a certain distance, however, it moves to absolute world
  587. coordinates.
  588.  
  589. Alignment is also absolute; it will rotate your object in whatever way
  590. necessary to align in the direction you specify, regardless of the
  591. original orientation. Setting X, Y, Z all to zero will make the object
  592. line up exactly with the world axes.
  593.  
  594. Size is again absolute. It uses the axis size as a benchmark, and will
  595. scale the object (and it's axis) to an absolute size. The "default"
  596. size that all axes start out at is 32 Imagine Units, so entering an
  597. XYZ size of 32 32 32 will bring most objects back to their virgin
  598. sizes.
  599.  
  600. To use any of these sub-commands, just click on the box next to it's
  601. name and type in the appropriate X, Y, and Z arguments in the boxes to
  602. the right. Selecting "OK" will perform the manipulations, "cancel"
  603. will abort without affecting your object.
  604.  
  605. You have the option to use world or local coordinates, just as in the
  606. interactive commands; just click on either box to decide. The default
  607. is the world system. You can also manipulate only the axis (like the
  608. capital letter commands in interactive manipulation) by selecting
  609. "transform axis only."
  610.  
  611. Most manipulations use the interactive controls, and the
  612. transformation requester is used only for accurate, measured changes.
  613.  
  614. One problem that you may run into after an interactive or a
  615. transformed manipulation is a "dirty" screen. Imagine erases the old
  616. object from before your move or scale or rotate, and draws it in the
  617. new position. However, to save time, it will not redraw any other
  618. wireframe object that was in view. This means that the areas were the
  619. old object intersected any other object in the view will be blank;
  620. part of the other object will be erased. If you want to check to see
  621. if this is the case, you can select "Redraw" from the Display menu,
  622. which will redraw all of the objects, eliminating the problem.  One
  623. case where this is almost necessary is when you have multiple copies
  624. of an object at the same place. If you move one copy, the other isn't
  625. redrawn. Since it was in the exact same location as the old, erased,
  626. object, it looks like it has disappeared!  This is easy to fix with
  627. redraw. It is another oft-used command, so knowing the keyboard
  628. equivalent of right-Amiga-r is handy.
  629.  
  630. A problem you'll run into when manipulating complex objects is the 
  631. sheer time it takes to redraw the wireframe model (in three views).
  632. Imagine has a way to speed the display of these objects- it shows
  633. the bounding box of the object (like the one shown in interactive
  634. manipulation) instead of the wireframe. You LOOSE the detailed view
  635. of your object, but you can still see the position, size, and
  636. orientation. To make an object "quickdraw" in this mode, you can
  637. use three commands in the Functions menu. "Quickdraw all" will make
  638. all of the objects display in quickdraw mode. "Quickdraw none" will
  639. make all objects display the normal wireframe. "Quickdraw pick" will
  640. make your picked (blue or purple highlighted) object display in
  641. quickdraw mode. These quickdraw boxes are very handy, and since
  642. they can be toggled at any time in the Detail Editor, it makes sense
  643. to use them when screen updates start to get too slow.
  644.  
  645.  
  646. -------------------------------------------------------------------------
  647.                IV. Harvesting and Sorting with Pick
  648. -------------------------------------------------------------------------
  649.  
  650. Since you can have many objects loaded at once, there has to be a way
  651. for you to tell Imagine what object or objects you want to deal with.
  652. You've done this already, by clicking on an object's axis, and
  653. watching it turn color. This shows that the picked object is ready to
  654. be manipulated on.
  655.  
  656. What if we want to manipulate more than one object at a time? A
  657. standard way to "multi-pick" things (like icons in AmigaDos, or
  658. objects in Imagine) is to use the shift key. By holding the shift key
  659. as you click on objects, Imagine knows you want ALL of them picked,
  660. not just the latest one. In fact, if you press the shift key, the
  661. display line at the top of the screen will change to show how many
  662. objects are picked. Commands will affect all of the picked objects,
  663. not just one. In the case of moving, scaling, and rotating more than
  664. one object, the FIRST picked object's axis defines the basis of all
  665. the manipulations, as well as the local coordinate system for
  666. manipulating all of the objects.
  667.  
  668. There are easier way to pick many objects than by repeatedly clicking
  669. on each object's axis. Imagine allows you to change how objects are
  670. picked by the "Pick Method" submenu in the Modes menu. The default is
  671. "click", which means that when you click directly on an object's axis,
  672. it will become picked.  Other methods of picking can be chosen from
  673. the pick method submenu. If you use "drag box", instead of clicking on
  674. the object axes, you should press and hold the mouse button while
  675. dragging the mouse. A large box will follow your mouse, and when you
  676. release the button, an object within the box will become picked. If
  677. you press and hold the shift key when you release the mouse button,
  678. ALL of the objects within the box will become picked.
  679.  
  680. Lasso is similar, but more versatile. You press and hold the button
  681. while drawing a large circle or oval or squiggly shape. When you
  682. release the button, an object within the region you've drawn will
  683. become picked.  Again, you can hold the shift key to pick ALL of the
  684. objects within.
  685.  
  686. A final option in the pick method submenu is called "Lock". Lock isn't
  687. a method of picking; it really has more to do with when moving picked
  688. objects. Lock is a flag; you can toggle it on and off by selecting it
  689. from its submenu. When Lock is on, any moved object will snap to the
  690. nearest grid location when released. This is automatic and is easier
  691. than using the one-time "Snap to Grid" (described later, I promise!)
  692. again and again when you're trying to get precise placement.
  693.  
  694. Two other utility commands can be found in the Pick/Select menu.
  695. "Pick all" will pick ALL of the objects in your workspace. "Unpick
  696. Last" will allow you to remove the last object you picked from your
  697. set of picked objects. This is handy when you pick one too many
  698. objects and you want to unpick the last one you chose.
  699.  
  700. It is easy to pick objects or sets of objects using the different pick
  701. methods. There is actually another powerful way to change what object
  702. or objects are picked; it is called "select."  There is a very, very
  703. important difference between a "picked" object and a "selected"
  704. object; you've been using pick to highlight objects and manipulate
  705. them. Select is sort of a pick-wanna-be.
  706.  
  707. One problem that can occur is when two object axes are directly on top
  708. of each other. If you click on the common axis location, one of the
  709. objects will become picked. (The first one that was created or loaded
  710. into the Editor). If you click again, the same object will remain
  711. picked and the second object will just sit there.  If you hold the
  712. shift key and click on the common axis again, the second object WILL
  713. be picked, but now BOTH objects are picked. If you want to pick just
  714. the second object and not the first, you can either MOVE one object
  715. just to uncover the other axis, or you can use select.
  716.  
  717. There is a solution when picking (or unpicking) objects becomes
  718. awkward (or impossible!). SELECT allows you to control what objects
  719. are picked by allowing you to add and remove objects from your set of
  720. picked objects one at a time.
  721.  
  722. Think of buying lunch at a cafeteria, and you pick which food you want
  723. to eat. One way of "picking" food to add to your tray is by having the
  724. lunch worker point to each of the cafeteria's food bins, and saying
  725. "No, the next one, the next one, the next one- yes! That one!"  as the
  726. worker points to the foods in turn.  As the worker selects item after
  727. item, you can choose to PICK the item he's pointing to at any time.
  728. The analogy extends; What if your arms are full of cafeteria food and
  729. you want to put some back? Your arms are busy holding all the food;
  730. you can't easily grab an item and put it down.  You can, however, ask
  731. a friend to "unpick" the item for you.  If your friend has trouble
  732. with big words (like the names of food), he can just point at each
  733. food in your arms in turn until he points to the granola yogurt you
  734. want to put down. You then say "Yes, yes! Get rid of that!"
  735.  
  736. This is exactly what select allows you to do. Your arms are full with
  737. picked objects. You can't just click on an object to "unpick" it
  738. because Imagine thinks you're just making sure you have it picked. You
  739. also might have problems indicating the right object to pick, as in
  740. the case of two objects on top of one another. The major difference
  741. between the the cafeteria and Imagine is that your mentally challenged
  742. friend is also the cafeteria worker, and will point to both types of
  743. objects for you.
  744.  
  745. Select works by allowing you to highlight different objects in a
  746. controlled way. A "selected" object might be picked or not; A normal
  747. object is white, a selected object is orange, a picked object is blue,
  748. and a picked AND selected object is purple.
  749.  
  750. Only one object is ever be selected at once, which is helpful in
  751. reducing confusion. The commands for selecting objects are completely
  752. different from those of PICKing objects; the whole point of select is
  753. that sometimes the methods used to pick objects are awkward, and
  754. select gives you an alternative way to pick them.
  755.  
  756. The easiest and most common method of selecting an object is by using
  757. two commands, "Select next" and "Select previous", both found in the
  758. Pick/Select menu. Using "Select next" repeatedly will cycle through
  759. all of the objects in the order that they were created or loaded.
  760. This command does NOT care whether the object is picked or not; it
  761. will select all objects one at a time. "Select next" is often a
  762. command you want to repeat, so knowing the keyboard shortcut of
  763. right-amiga-n is almost necessary.  By repeatedly using select next,
  764. ANY object can be selected because Select next will eventually reach
  765. it. "Select previous", right-amiga-p, will select objects in the
  766. opposite order, in case you overshoot with select next.  One
  767. convenience is that when an object becomes selected, your view will
  768. jump to center the object on the screen, always allowing you to see
  769. what you just selected.
  770.  
  771. When an object is selected, there are certain commands that will cause
  772. it to become picked or un-picked. The most common command is called
  773. "pick select", which can be found in the Pick/Select menu. When you
  774. use this menu option, the selected object will become picked. If the
  775. selected object is picked and you want to un-pick it, you can use
  776. "unpick select" from the pick/select menu to unpick it.
  777.  
  778. "Select next" is kinda klunky, especially if you know exactly what
  779. object you want to select. One quick command that is sometimes useful
  780. is "Home", which selects the very first object you created or loaded
  781. into the Editor.
  782.  
  783. Two other useful commands to quickly select specific objects are "Find
  784. by Name" and "Find requester", both found in the Functions menu. "Find
  785. by Name" allows you to type in an object's name (assigned in the
  786. Attributes requester, more later) and your view will shift to center
  787. on the object you named. In addition, the object becomes selected,
  788. allowing you to pick-select or unpick-select it. The "Find by
  789. Requester" does the same thing except it displays the names of all of
  790. the currently loaded objects, and you just click on the name you want
  791. to select. This requester is also useful because it tells you the size
  792. (# of points, edges, and faces) of each object, which is an excellent
  793. judge of object complexity. It's also fun to say "Cool! My tomato has
  794. 1,821 points!"
  795.  
  796.  
  797.  
  798. ----------
  799. Continued in the next file...
  800.  
  801. From spworley@ATHENA.MIT.EDU Tue Jun 11 21:15:50 1991
  802. Received: from E40-008-11.MIT.EDU by ATHENA.MIT.EDU with SMTP
  803.     id AA05348; Wed, 12 Jun 91 00:17:48 EDT
  804. From: spworley@ATHENA.MIT.EDU
  805. Received: by e40-008-11.MIT.EDU (5.61/4.7) id AA03799; Wed, 12 Jun 91 00:17:43 -0400
  806. Message-Id: <9106120417.AA03799@e40-008-11.MIT.EDU>
  807. To: imagine@ATHENA.MIT.EDU
  808. Subject: Introductory Detail Tutorial (File 3 of 3)
  809. Date: Wed, 12 Jun 91 00:17:42 EDT
  810. Status: RO
  811.  
  812.  
  813.  
  814. -------------------------------------------------------------------------
  815.                    V. Hierarchies and Complex objects
  816. -------------------------------------------------------------------------
  817.  
  818. With complex models, sometimes you don't want to make one huge, mungo
  819. object to represent the entire model. You might want to make a forest
  820. object that has 20 trees in it, and it seems silly to carve the whole
  821. thing out of one block. Or, you might be building an object that is
  822. logically a bunch of separate parts, like a clock with a face, a
  823. pendulum, two hands, and a frame.
  824.  
  825. Another important ability you might want is to be able to give
  826. different parts of a complex object different attributes, or colors.
  827. Imagine lets you color and define the look of your objects in
  828. different ways, and you can even tell it to make different parts of
  829. the same object look different. But when you're building something
  830. like a window, the glass panes are considerably different than the
  831. wood frames; it is easier to define each as a separate object then
  832. somehow group them together.
  833.  
  834. There is a function that lets you do exactly this- group objects
  835. together.  When you have a model that you want to make (and keep!) in
  836. separate sections, Imagine allows you to establish a group of objects
  837. which will stay together. It allows you to treat the group as an
  838. entire ensemble (if you want to move everything, or apply a command to
  839. the whole set), or you can pick out one particular object and deal
  840. with it independently.
  841.  
  842. Grouping is very easy to do. If you want to group two objects
  843. together, you click on one object, then press the shift key and click
  844. on the other.  Remember that this is just the method of picking more
  845. than one object at once. When you have multi-picked the objects, you
  846. select "group" from the Object menu. A purple line will appear joining
  847. the axes of the objects.  The first object that was selected becomes
  848. the "parent" of the group.  If you group more than two objects, the
  849. purple "group" lines all run from each "child" object to the parent
  850. object. This lets you see which axis to click on to pick the entire
  851. group. Sometimes it is nice to assign a lone axis as the parent of a
  852. group, especially when no part of a group really doesn't lend itself
  853. to being a parent.
  854.  
  855. Splitting a group back into it's component parts is also easy; just
  856. pick the group by clicking on the parent. The entire group will become
  857. picked, and selecting "Ungroup" from the Object menu will split the
  858. group. The purple joining lines will disappear, and each child will
  859. be independent again.
  860.  
  861. Once a group is made, it can be treated almost identically to an
  862. ungrouped object. You can pick it (by clicking on the parent) and the
  863. entire group will become highlighted. You can then move, scale, or
  864. rotate the entire group as a whole. If you click on a CHILD object,
  865. the child will be picked, but not the group. You can then move, scale,
  866. or rotate it independently of the group, assign it individual
  867. attributes, or perform a command on it independently of the rest of
  868. the group. Even when you move the child object around, it will STAY
  869. grouped; you must use "ungroup" to ungroup objects. There are modes
  870. where you can pick parents separate from their children; this is
  871. described in the next section.
  872.  
  873. In addition, you can make groups of groups. Or groups of groups of
  874. groups. This is done exactly the same as before; you can pick one
  875. group, multi-pick a second, and group them. Having these multi-layer
  876. groups is sometimes very useful. One excellent example would be in
  877. modeling a human figure. You might make a finger group that contains
  878. all of the knuckles, a hand group including a palm, four finger
  879. groups, and a thumb group, an arm group consisting of a hand group, a
  880. wrist, a forearm, and an elbow, and a body group consisting of a head
  881. group, a torso, two leg groups, and two arm groups. This kind of
  882. nested grouping is called a "hierarchy", where the body is the
  883. great-granddaddy of a knuckle. One great advantage is obvious when you
  884. want to move an arm.  You pick the arm, and rotate it around the
  885. shoulder. All of the arm's children follow it, so the arm moves as a
  886. whole. You do NOT have to move 15 knuckles, a palm, a wrist, a
  887. forearm, and so on. If you want to adjust a finger, you can manipulate
  888. it and the knuckles will move together, but the arm will be
  889. unaffected. If you move the main parent body group, everything follows
  890. along as if the body were just one solid object, as opposed to dozens
  891. of parts. Hierarchies are obviously suited for complex models.
  892.  
  893. Groups are useful when you have sub-parts of an object you want to
  894. keep together. Sometimes grouping simple objects is still useful even
  895. if there is no hierarchy to follow, since the individual objects are
  896. free to move apart from the parent, and can easily be assigned different
  897. attributes.
  898.  
  899. For example, if you're designing a human face, you might cause the
  900. eyeballs in the head to be an additional grouped object as opposed to
  901. just molded into the main face. Later, if you wanted to change the eye
  902. (make it a different color, or replace it with a different type of eye
  903. (chrome eyeballs!  Cool!)) you can easily select the eye and change or
  904. replace it. This advantage compounds the other advantages of grouping;
  905. you can later animate the eyes looking in different directions, and
  906. you can easily change the attributes or texture of the eye while
  907. leaving the face undisturbed.
  908.  
  909. -------------------------------------------------------------------------
  910.        VII. Pick, Add, Drag.  Pick, Add, Drag. Geez, how boring!
  911. -------------------------------------------------------------------------
  912.  
  913. There are some useful commands that act on picked objects other than
  914. just moving, rotating, and scaling. Two of the most obvious are "Load"
  915. and "Save". Load will load a new object in from disk- it will give you
  916. a file requester which you can choose the filename from.  The most
  917. common place to put objects are in your "objects" subdirectory in your
  918. project directory.See the Project Editor tutorial for the complete
  919. Imagine file structure.
  920.  
  921. Am important suggestion; use descriptive names and extensions. I
  922. talked about this a lot in my Project tutorial, but it's worth
  923. repeating. "Obj1" is going to mean nothing to you an hour from now.
  924. "tablecloth.iob" tells you that this is an Imagine object of a
  925. tablecloth- a useful description. Some suggested file extensions:
  926.  
  927.  .iob    Imagine Object. Loads into the Detail Editor 
  928.  .iout   Imagine Object which is a faceless outline
  929.  .ifm    Imagine Form. Loads into the Form or Detail Editor
  930.  .iff    Amiga picture or brush  (standard)
  931.  .ham    Amiga picture or brush in Hold-And-Modify format
  932.  .iff24  24-bit Amiga picture of brush. Highest quality.
  933.  .spth   Imagine spline path
  934.  .lpth   Imagine line path
  935.  
  936. Save will take the picked object or group and save it onto disk.
  937. Note that GROUPS will save as one big group, as long as you have the
  938. whole group picked by clicking on the parent. You can give the saved
  939. object or group any name you want, and you'll probably want use an
  940. extension of ".iob". If you pick a child of a group and save it, 
  941. you save ONLY that object (and its children), and NOT the entire group
  942. it belongs to.
  943.  
  944. Another command you can apply to picked objects is "Snap to Grid" from
  945. the Functions menu. It operates on all picked objects, moving each of
  946. them so that their axis lies on top of the nearest grid intersection.
  947. This is very useful in trying to line up objects or for precise
  948. positioning. This is much like a one-time "Lock".
  949.  
  950. There are a few other utility object commands. "Cut", "Copy", and
  951. "Paste" are found in the Object menu. "Cut" will remove your object
  952. from the Imagine world and store it in memory. When you select
  953. "Paste", the object will be re-inserted into the world at the same
  954. place it was prior to the cut. In fact, the object is STILL retained
  955. in memory, so you can move the restored object around and use "Paste"
  956. again to get a second copy to manipulate.  You can repeat "Paste" as
  957. many times as you like to get copies of objects. "Copy" is like cut,
  958. except the object is not removed from the world after being copied to
  959. memory. You can use "Paste" to add multiple copies to the world.
  960.  
  961. Since the pasted objects are all put in the same location, often
  962. you'll have to move one copy to get to the next. Judicious use of
  963. "Redraw" can help in showing exactly what copies are still floating
  964. around.
  965.  
  966. An incredibly useful command for making complex objects is called
  967. "Join", which can be found in the Functions menu. If you pick two or
  968. more objects, join will assemble them into one single object. The
  969. new conglomerate object will have use the axis of the first object
  970. that was picked, and will contain all of the points, edges, and faces
  971. of all of the joined objects. Joined objects are difficult to 
  972. unjoin later, so only use it when you WANT a solid object. Join
  973. is used constantly- you might build a car with the body sides, and
  974. "join" on a side mirror, then join the  roof on, then join the floor. 
  975. Remember the advantages of groups though; you probably DON'T want
  976. to join the tires to the car; if you group them you can rotate them
  977. later, as well as define the chrome hubcap separately from the car's
  978. paint and the rubber tire.
  979.  
  980. "Merge" is also found in the Functions menu. It is more of a utility
  981. command. It will remove any duplicate faces, edges or points in your
  982. object. Especially after you JOIN objects, you might have a lot of
  983. points lying on top of one another. Merge removes these extra,
  984. unneeded points, speeding rendering and even display in the editors.
  985. Merge also helps Phong shading; more about Phong shading in the soon
  986. to come Attribute Tutorial. 
  987.  
  988. Delete is pretty obvious command. It can also be found in the Functions
  989. menu.  When you use delete, every picked object will be removed from the
  990. world. This command is used a lot to get rid of cruft and deadwood, so
  991. knowing the keyboard shortcut of right-amiga-d is useful.
  992.  
  993. As with all of the editors, Imagine has one level of "Undo", which can
  994. be selected from the Project menu. When using dangerous commands like
  995. Delete, being able to recover from the command is important. Undo will
  996. work with almost any command. You can also undo an undo, reinstating a
  997. command you decided you wanted anyway. 
  998.  
  999. -------------------------------------------------------------------------
  1000.                    VIII. Spraypaint and Picture Frames
  1001. -------------------------------------------------------------------------
  1002.  
  1003. The low-level commands to create and manipulate objects are sufficient
  1004. to create any model you can think of.  An additional level of control
  1005. you have is the ability to define the surface color and attributes of
  1006. your object. A flat plane might be made of two triangles, but
  1007. depending on how you set the attributes of the plane, it might render
  1008. as a pane of glass, a reflective mirror, a wood tabletop, a piece of
  1009. graph paper, or a picture of your grandmother. Defining the surface
  1010. characteristics of objects gives them their character. Luckily,
  1011. Imagine gives you excellent control of these attributes.
  1012.  
  1013. Every object has a set of attributes that can be modified. In a group,
  1014. every object can have different attributes from the parent; when you
  1015. select a group, you only modify the parent's attributes. To change any
  1016. attributes, just pick an object and select "Attributes" from the Object
  1017. menu. A requester will appear, and you can select different properties
  1018. to change. In addition, you can place brush maps and textures on the
  1019. object, as well as add or change the object's name.
  1020.  
  1021. Choosing and setting attributes is immensely important to make your
  1022. objects look good. Setting textures and especially brushmaps give you
  1023. near-infinite control on what your object's surface looks like.  I
  1024. have written full tutorials on both the use of texture and brushmaps,
  1025. and plan to write one on setting attributes.  The choices in the
  1026. attributes requester are so important that they deserve a tutorial
  1027. unto themselves. I haven't written the attribute tutorial as of today
  1028. (6/11/91), but look for it by the end of July.
  1029.  
  1030.  
  1031. -------------------------------------------------------------------------
  1032.                     IX. A Mode for Every Season
  1033. -------------------------------------------------------------------------
  1034.  
  1035. The basic commands to pick, move, and view the world and everything in
  1036. it are very important, as they are used constantly. The actual work
  1037. you perform in building objects depends on the user changing the view
  1038. and manipulating the objects almost without thought.
  1039.  
  1040. No matter how good we are at manipulating objects and changing the
  1041. view, using these commands will never BUILD an object for us. To do
  1042. this, Imagine has different MODES that it performs different actions
  1043. in. Some modes allow us to manipulate objects and groups, as we have
  1044. been doing already. Other modes let us pick and manipulate not
  1045. objects, but the POINTS of an object, or the edges, or the faces.
  1046. Still other modes let us drag points around in different ways. Some
  1047. let us add NEW points, edges, and faces.  (Aha! So that's how we can
  1048. build our own objects!)
  1049.  
  1050. These modes are easy to change; you can just pull down the Mode menu
  1051. and select which mode you would like to be in.  The current mode is
  1052. always displayed in the status line at the top of the screen; this is
  1053. often handy when you get confused about what you're doing. The
  1054. keyboard equivalents for changing the current mode all use right-Amiga
  1055. and a digit; this makes the keypad become a "mode selector" if you
  1056. don't want to use the pull-down menus and have stuff it takes to
  1057. remember which digit is which mode.  Personally, I don't have the
  1058. stuff, so I bear with the pulldown menu rather than strain my poor
  1059. brain.
  1060.  
  1061. The default mode is "Pick Groups", which means that whenever you click
  1062. on a group, it will be picked. (Simple!) If you want to pick
  1063. individual objects, EVEN IF THEY ARE THE PARENT OF A GROUP, there is
  1064. a mode called "Pick Objects."  Just select it from the mode menu, and
  1065. now when you click on any object (in a group or not, child or parent)
  1066. it will be selected. You cal obviously multi-select it using the shift
  1067. key. When you are dealing with ungrouped objects, "Pick groups" and
  1068. "Pick objects" work identically.
  1069.  
  1070. Different modes let you deal with the different parts of an object. Up
  1071. until this time, we've always dealt with entire objects at a time. We
  1072. could rotate, scale, and move them, add them, group them, and delete
  1073. them, though we could not affect their basic structure. The remaining
  1074. modes all work on PARTS of objects, not objects themselves. One
  1075. important note is that to even enter these other modes, you must have
  1076. selected at least one object (or group) for the new modes to act apon.
  1077.  
  1078. You'll also find that I consistently lied to you in most of the
  1079. previous sections. I always referred to picking objects as opposed to
  1080. picking anything else. ALL of the pick and select commands except Find
  1081. work equally well in picking faces, edges, or points as opposed to
  1082. just objects or groups. Most other commands like Delete will work on
  1083. the parts of an object as well.
  1084.  
  1085. One new mode is "Pick points." If you pick an object or group and
  1086. enter the pick points" mode, the object will turn white (the object is
  1087. NOT picked anymore!) and it's points will all become visible (they
  1088. will show up as small squares.) Now you are in a different mode; you
  1089. are no longer picking and selecting OBJECTS, you are dealing
  1090. exclusively with points. You can then click on the points which will
  1091. turn orange as you pick them. You can use the shift key to multi-pick,
  1092. or the lasso and drag box to grab many points at once. You can also
  1093. select points, and use all of the selection tools to help you get any
  1094. subset of points you want. Selected points are green, picked points are
  1095. orange, and picked and selected points are yellow.
  1096.  
  1097. When you're picking points, edges, or faces, Imagine will work ONLY
  1098. with the points, edges, or faces in the object that was picked before
  1099. you chose the "pick points (or edges or faces)" mode. This prevents
  1100. you from confusing one object's points with another's. When you scroll
  1101. around your view or redraw the screen, the other objects won't even be
  1102. updated, so don't get scared if they seem to disappear. When you
  1103. re-enter pick objects or pick groups mode, all of the objects will
  1104. re-appear.
  1105.  
  1106. Just because you can pick something doesn't mean you can perform every
  1107. command on them. In the case of points, you can delete your picked
  1108. points, or use the transformation requester to translate them;
  1109. interactive dragging is actually another mode of it's own, though.
  1110. When you delete a point, you delete any edges and faces that that
  1111. point help form. You cannot do things to selected points that make no
  1112. sense (like grouping them, or saving them to a file)- that's just
  1113. weird.
  1114.  
  1115. You can perform some other commands that aren't applicable to objects
  1116. as a whole, however. For example, a very useful command is called
  1117. "split." It takes the selected points,  removes them from the
  1118. original object, and gives them their own axis. In effect, the
  1119. original object is split into two parts defined by the points you
  1120. picked. Any connecting faces or edges are deleted (two objects do NOT
  1121. share!).  This might be very useful when you have a logo and want to
  1122. pull one letter out of the object to do something special with it.
  1123.  
  1124. One command that is unique to pick points mode is "taut", which is
  1125. found in the Functions menu. If you select three or more points and
  1126. select "taut", the middle points will jump to the line segment defined
  1127. by the first and last points. This command might be useful to line up
  1128. a bunch of points in a straight line quickly. Taut does NOT work with
  1129. anything other than picked points.
  1130.  
  1131. Picked points can be manipulated with the Transform command. The
  1132. picked points can be translated, scaled, rotated, and positioned
  1133. INDEPENDENTLY of the rest of the object. Rotations and scalings all
  1134. use the object's axis as a reference point. Absolute positioning will
  1135. move the FIRST point you pick to the location you choose, and the
  1136. rest of the picked points will be translated an equal amount. Interactive
  1137. dragging is accomplished using the "drag points" mode.
  1138.  
  1139. Picking edges is similar to picking points, except to specify an edge
  1140. you just click on the two points that make it up, or lasso or drag box
  1141. the entire edge. Just like points, you can't perform every command on
  1142. them. You can delete them and split them.
  1143.  
  1144. You CANNOT translate edges or use taut on them. Deleted edges will 
  1145. delete any face they belong to, but the points in the edges will NOT
  1146. be removed.
  1147.  
  1148. A new command you cannot perform on points but can use on faces is
  1149. called "fracture." This command is in the Functions pull down menu,
  1150. and is often very useful. The fracture command will take and break 
  1151. each edge into two edges, with an additional point added to the
  1152. midpoint of each selected edge. This command is very useful when you
  1153. need to increase the detail level at a certain area of an object; the
  1154. extra edges that appear allow you to manipulate them to add finer
  1155. details and structures.
  1156.  
  1157. Select Faces is again pretty straightforward. You must click on ALL
  1158. THREE of the points that make up the face to select it. Fracture works
  1159. very well on faces; it splits each face (one triangle) into four
  1160. triangles defined by the midpoints of the face. The new faces can then
  1161. be manipulated for higher object definition.
  1162.  
  1163. Deleting faces removes the faces, but not the edges or points that it was
  1164. made up of.
  1165.  
  1166. Picked faces allow you to characterize an object's appearance in local
  1167. areas. The attribute requester normally allows you to give the object
  1168. overall color, reflection, and transparency values. You can actually
  1169. set these for every single face, if you like. You can pick one or more
  1170. faces, select "attributes" from the Object menu, and use the sliders
  1171. to set the color, transparency, and filter values for the face or
  1172. faces.
  1173.  
  1174. You will NOT see any change in the appearance of your object when you
  1175. do this, but when you render, the faces you selected will all override
  1176. the default object color with the attributes you selected. A danger is
  1177. that face attributes are somewhat fragile. If you join or merge
  1178. objects or start deleting or adding points to it, all face coloring is
  1179. often lost. To keep this from happening, color individual faces LAST,
  1180. just before saving your object.
  1181.  
  1182. A final note about face coloring; don't depend on it for coloring your
  1183. objects in complex ways. Using grouped objects or brush maps is much
  1184. more robust and allows better control. Coloring individual faces is
  1185. useful mostly for quick and dirty attribute definition or for making
  1186. small details that aren't worth the bother of a brushmap or extra
  1187. object.
  1188.  
  1189. Both "pick edges" and "pick faces" will allow you to split off the
  1190. selected parts of the object to create two new objects by using
  1191. "split", just as split works with selected points.
  1192.  
  1193. Three additional modes are "add points", "add edges", and "add faces".
  1194. Add points will add an additional point to your object in the location
  1195. you click on. Add edges lets you click on TWO points and will add a
  1196. new edge joining them. Add faces mode will let you add a new face to
  1197. an object by clicking on the THREE points that make it up.
  1198.  
  1199. "Add lines" mode is a convenient combination of "add points" and "add
  1200. edges". As you click, a new point is added in the location you point
  1201. to, and further clicks will add additional points along with an edge
  1202. joining the latest point to the one that was immediately preceding it.
  1203. Thus, a few clicks around the border of a rough circle will make a set
  1204. of points with the edges following the outline of that circle.
  1205. Carefully clicking on the location of an existing point will cause the
  1206. new line to connect to to that point, so making closed shapes is
  1207. easier.
  1208.  
  1209. "Drag points" mode allows you to interactively drag individual points
  1210. in your object around. If you select this mode, you can click on any
  1211. point and drag it to a new location interactively. Any edges or faces
  1212. that this point is connected to will follow the point to its new
  1213. location.
  1214.  
  1215. Dragging multiple points is also easy- just use the shift key,
  1216. multi-pick the points by clicking on each in turn, and when you want
  1217. to start dragging them, just release the shift key.
  1218.  
  1219. AN IMPORTANT TECHNIQUE: What if you want to select a point or points
  1220. in one view, and drag them in an orthogonal direction? For example,
  1221. you have a plane defined by a horizontal 10 by 10 grid, and you want
  1222. to select a bunch of points from the middle and pull them up. If you
  1223. click on the points from the top view, you can easily select any of
  1224. the points you're interested in, but you can only drag them left and
  1225. right, forward and back. You want to be able to drag them UP.
  1226.  
  1227. Here's the method for doing this: it is invaluable, so remember it.
  1228. Whether you want to move one point or a hundred, press the shift key
  1229. to multi-pick the points.  Click on the points you want to move in ANY
  1230. view, keeping the shift key depressed. To move all of these points,
  1231. KEEP THE SHIFT KEY DEPRESSED and move the mouse to the view where you
  1232. want to move the points in. Press and hold the left button, then
  1233. RELEASE the shift key. The picked points will move with your mouse for
  1234. as long as you keep the button held down. Releasing the button will
  1235. anchor the points.
  1236.  
  1237. In the example with the 10 by 10 horizontal grid, you would press
  1238. shift, click on the points you want in the top view, move to the front
  1239. (or right) view, release the shift key, move the points up, and
  1240. release the mouse button.  That's it!
  1241.  
  1242. Magnetism, a more complex way of dragging points will be covered in
  1243. the "advanced" Detail tutorial.
  1244.  
  1245. One problem with manipulating points, edges, and faces is picking the
  1246. RIGHT point. When the object is complex, the wireframe displays can
  1247. get very cluttered. There is a convenient way of simplifying a view to
  1248. get points out of your view- it is a mode called "hide points". In
  1249. hide points mode, any points you select (with click, drag box, or
  1250. lasso) will disappear from view- they will go away. They still exist,
  1251. they just aren't displayed and can't be picked or manipulated. You can
  1252. "hide" whatever points that get in the way of your work area, then
  1253. change modes, and manipulate the non-hidden parts of your object.
  1254. Selecting "pick objects" or "pick groups" will make the hidden points
  1255. re-appear.
  1256.  
  1257. For example, if you're working on a helicopter model and you want to
  1258. work on the rotor alone, you might select "hide points" mode, and use
  1259. the lasso to indicate the main helicopter body. The rotor is left
  1260. alone, and after changing into drag points or select faces mode, it is
  1261. easy to indicate what portion of the rotor you want to deal with
  1262. without accidentally modifying the helicopter body. Selecting "pick
  1263. objects" mode makes the entire helicopter, with the rotor changes,
  1264. reappear.
  1265.  
  1266. In theory, you can create any object by adding an axis, then adding
  1267. points, edges and faces. In practice, these are very low level
  1268. commands; you generally use the more powerful commands like "mold" and
  1269. "slice" found in the Object editor. The low level select and add modes
  1270. are built to give you the low level control that you sometimes need;
  1271. however, they are more for defining basic outlines that are then used
  1272. in the more powerful Object commands, or for touching up small details
  1273. on nearly complete objects. The next Detail tutorial will talk about
  1274. these commands. 
  1275.  
  1276. -------------------------------------------------------------------------
  1277.                         X. More to come
  1278. -------------------------------------------------------------------------
  1279.  
  1280. This tutorial describes the important fundamentals of using the Detail
  1281. Editor. Remember that most object creation mostly uses the advanced
  1282. functions like "mold" and "slice". My next tutorial will deal with
  1283. these powerful tools; however, the basics that are described in this
  1284. tutorial are very useful and knowing how to move your view and
  1285. manipulate objects is virtually essential. I also plan to write a
  1286. general tutorial (with examples!)  describing object creation; knowing
  1287. all the menu commands doesn't give you a sense of the strategies to
  1288. follow or steps to take to create a specific model.
  1289.  
  1290. Another important discussion in the followup Detail Tutorial will
  1291. describe different classes of objects: lone axes, line paths,
  1292. outlines, flat objects, and "normal" objects.  Expect the second
  1293. tutorial around the middle to end of July, 1991.
  1294.  
  1295. Whew! Another tutorial whipped out! Actually, this one only covers 2/3
  1296. of an Editor, but including everything would really stretch the limits
  1297. of a coherent text file. (This one is only 71K!) I am very glad to
  1298. have gotten a lot of positive response from my last tutorial on the
  1299. Forms Editor; I hope this one (which covers a much more complex
  1300. Editor) is equally well received.
  1301.  
  1302. If you have any questions, you are welcome to write me or send
  1303. e-mail to the Internet Imagine Mailing list, imagine@athena.mit.edu.
  1304. Any suggestions or "I want to see this in a tutorial" questions
  1305. sent to me personally will be gladly accepted.
  1306.  
  1307.  
  1308. -Steve
  1309.  
  1310. -------------------------------------------------------------------
  1311. Steve Worley                                spworley@athena.mit.edu
  1312. -------------------------------------------------------------------
  1313.  
  1314.  
  1315. Steve Worley
  1316. 290 Massachusetts Ave.   (this address soon to change, but mail sent
  1317. Cambridge MA 02139        here will eventually make it to me anyway...)
  1318.  
  1319.  
  1320. ----------------------------------------------
  1321.  
  1322. This file and the text therein is Copyright 1991 by Steven P. Worley.
  1323. All rights reserved.  This file may be distributed freely in computer
  1324. or paper form as long as 1) It is unchanged and unedited 2) is
  1325. distributed in its entirely 3) gives proper credit to the author,
  1326. Steven Worley.
  1327.  
  1328.  
  1329.